﻿namespace CAPHandlerAttributeDemo.Api.EventHandlers;

[AttributeUsage(AttributeTargets.Class)]
public class EventNameAttribute : Attribute
{
    public string Name { get; }

    public EventNameAttribute(string name)
    {
        Name = name;
    }

    public static string GetNameOrDefault(Type type)
    {
        var eventNameAttribute = type.GetCustomAttributes(typeof(EventNameAttribute), true)
            .OfType<EventNameAttribute>()
            .FirstOrDefault();

        if (eventNameAttribute == null)
        {
            return type.FullName!;
        }

        return eventNameAttribute.Name;
    }
}
